
CC=g++
CXX=g++
CPPOBJS = unitTester.$(ext)
OCPPFLAGS=-O3 -ffast-math -fomit-frame-pointer -Wall $(CPRECFLAG) -D NDEBUG
DCPPFLAGS=-O0 -ggdb -Wall $(CPRECFLAG) -fbounds-check -D_GLIBCXX_DEBUG -g3 -fno-inline
GENFLAGS=-I../ -I../ParserX
ifdef DEBUG
  ext=g
  dflag=dbg
  CPPFLAGS=$(DCPPFLAGS) $(GENFLAGS)
else
  ext=o
  dflag=opt
  CPPFLAGS=$(OCPPFLAGS) $(GENFLAGS) 
endif

ifdef SINGLEPRECISION
  CPRECFLAG=-fsingle-precision-constant
  MEXPRECFLAG=
  FPRECFLAG=
else
  MEXPRECFLAG=-D__QGCMDOUBLEPRECISION=true
  CPRECFLAG=-D__QGCMDOUBLEPRECISION=true
  FPRECFLAG=$(CPRECFLAG)
endif


TESTLIST=`ls t*.cpp`

default : tags

clean :  
	rm -f $(CPPOBJS) 
	rm -f tags

tags : *.cpp *.hpp ../*.h ../*.cpp ../ParserX/*.h ../ParserX/*.cpp 
	ctags *.hpp *.cpp ../*.h ../*.cpp ../ParserX/*.h ../ParserX/*.cpp

ctags : tags 

%.$(ext) : %.cpp %.hpp
	$(CXX) -c $(CPPFLAGS) $(INCDIR) $*.cpp -o $*.$(ext)

%.(exe) : %.cpp $(CPPOBJS)
	$(CXX) -c $(CPPFLAGS) $(INCDIR) $*.cpp -o $* $(CPPOBJS)
